1. Field of the Invention
The present invention relates generally to control design methodology and, more particularly, to a method for integrating and automating the implementation of fixed-point filter designs.
2. Description of Related Art
Discrete-time filters are ubiquitous in digital electronics since they are used in almost all sampled-data systems. For example, discrete-time filters are used in disk drives, automobiles, cellular phones, stereos, and modems, to name a few applications. Some of these filters are used as components in feedback control systems, in which case they are commonly referred to as controllers.
A number of techniques and tools exist for designing discrete-time filters and controllers that are based on modern control and signal processing theory. Design tools often produce controllers or filters that are represented by a large set of coefficients having very high precision (e.g., 32- or 64-bit floating-point precision).
If the filter is to be implemented in real time on a floating-point processor, it may be necessary to reduce the number of coefficients used to represent the filter by approximating it with fewer coefficients in order to reduce the number of computations necessary between samples. If the filter is to be implemented on a fixed-point processor, then the coefficients of the filter must be represented as integers and the computations must be carried out using integer arithmetic. To avoid saturation and loss of precision in the filter, the coefficients must be scaled properly.
Fixed-point implementation of filter designs, especially high-order filter designs, can be a very nonsystematic and time-consuming, thus making their implementation an expensive task. Currently, no single software tool is available that can be used for the entire process of fixed-point implementation of filter designs. Because certain steps within the filter design process have unpredictable outcomes, the process tends to be iterative and requires the filter designer to perform a large number of manual operations. In addition, existing filter design implementation tools are created specifically for designers who have a high level of expertise, and are not useful for engineers with a more general background.
One shortcoming of existing filter design implementation tools and methodologies is the lack of an automated and integrated way to efficiently group coefficient or signal scalings. A filter designer must manually select (xe2x80x9clockxe2x80x9d) individual scalings associated with coefficients or signals and then expect the design tool to choose different values for each of the remaining scalings, which often proves to be a difficult task. A typical example of such a software tool is Simulink Fixed-Point Blockset, available from Mathworks, Inc. of Natick, Mass. The use of this tool is a labor-intensive effort and often results in a computationally inefficient filter implementation.
Another shortcoming of current filter design implementation tools is in their method of performing model reduction (i.e., reducing the size of the filter). These methods are not automated and, require significant knowledge in the art of signal processing and control engineering. Further, in some control systems the filter that forms the feedback controller is open-loop unstable. Standard model reduction tools cannot be applied to unstable filters. Two examples of such software tools are MATLAB(copyright) Control System Toolbox (available from Mathworks, Inc. of Natick, Mass.) and Matrixx (available from Integrated Systems, Inc. which is owned by Wind River Systems).
Finally, one significant shortcoming with existing software tools is that most of these filter design tools can perform only single, fragmented sub-tasks that are part of the fixed-point filter design implementation process. It is generally left to an expert user to manually integrate tools that perform these subtasks into a complete design process.
A method and system is disclosed for design an implementation of fixed-point filters from floating-point filters. A design sequence for designing a fixed-point filter for a system is selected. A low-order floating-point filter and a first set of parameters associated with the low-order floating-point filter components are then selected. One or more parameters of the first set of parameters is then iteratively modified to obtain a set of modified parameters, until a plurality of performance characteristics calculated using the first set of parameters meets a performance objective for the fixed-point filter for the system.